//
// Created by 123 on 2024/3/26.
//
#include <iostream>

#define Maxsize 100

using namespace std;

typedef struct {
    int data[Maxsize];
    int length;
} *Array;

Array initArray();

void add(Array &array, int e);

int splitSearch(Array arr, int e) {
    int high = arr->length - 1;
    int low = 0;
    while (low<=high){
        int mid=(high+low)/2;
        if(e>arr->data[mid])
            low=mid+1;
        else if(e<arr->data[mid])
            high=mid-1;
        else
            return mid;
    }
    return -1;
}

int main() {
    Array array = initArray();
    add(array, 0);
    add(array, 1);
    add(array, 2);
    add(array, 3);
    add(array, 4);
    add(array, 5);
    add(array, 6);
    add(array, 7);
    add(array, 8);
    add(array, 9);
    add(array, 10);

    for (int i = 0; i < array->length; ++i) {
        cout << array->data[i] << "     ";
    }
    cout << endl;
    cout << "------------------------------------------" << endl;
    cout<<splitSearch(array,6);
    return 0;
}



void add(Array &array, int e) {
    array->data[array->length++] = e;
}

Array initArray() {
    Array arr = (Array) malloc(sizeof(Array));
    arr->length = 0;

    return arr;
}

